草庐IT

Android FrameWork--SytemServer进程fork

全部标签

php - 什么是 PHP 进程的有效用户 ID 与真实用户 ID?

我很难找到PHP函数posix_getuid和posix_geteuid之间的区别。我知道posix_geteuid返回当前进程的有效用户ID,但这是什么意思?另外,设置用户ID与设置有效用户ID有什么区别? 最佳答案 对于PHP进程,它们可能总是相同的。它们通常唯一不同的地方是当进程作为setuid运行时,这对PHP脚本来说是非常不安全的(因为解释器很容易被环境变量破坏)。另请注意,只有当两者之一当前设置为0(root)时,您才能更改当前进程的uid/euid。 关于php-什么是PH

php - 为什么 PHP 挂起,当 bash 调用 fork 时

我正在从php调用一些bash代码,但即使我forkbash(使用&),php也不会在完整的bash完成之前完成。这段代码:HTMLSTARTHTMLEND将不会在浏览器中显示任何内容,beforeafter30秒。我真正想要的是从php启动一个GUI应用程序,它应该继续运行。 最佳答案 关闭sleep调用中的所有文件描述符以允许它分离:否则,输出文件描述符仍处于打开状态,并且PHP仍在尝试等待接收其输出,即使进程不再直接附加也是如此。这在运行时工作正常,立即退出但留下一个sleep过程:$timephp5test.php;psau

PHP进程ID和唯一

我想在后台运行一个php脚本并将其PID存储在数据库中。这样我就可以检查特定脚本是否正在运行(稍后)。我们可以使用getmypid来获取当前的PID。但是根据PHP手册ProcessIDsarenotunique,thustheyareaweakentropysource.Werecommendagainstrelyingonpidsinsecurity-dependentcontexts....我不能依赖PID。我的第二个想法是将进程创建时间存储到数据库中。如何获取当前脚本的创建时间?稍后我如何与任务列表进行比较以检查特定脚本是否正在运行?我在共享主机上运行,​​windows/li

php - bitcoind 守护进程和 createrawtransaction 参数

到目前为止,我一直在测试/学习Bitcoind守护程序的rpc接口(interface),并成功使用php库。我正在尝试创建一个新的原始交易,我在互联网上得到了很多示例,但我不知道函数的参数应该从哪里来。例子:$bitcoin=newBitcoin('myuser','mypwd','127.0.0.1','8332');$bitcoin->createrawtransaction(array(array("txid"=>"aed23bb3ec7e93d69450d7e5ea49d52fcfbef9d380108f2be8fe14ef705fcea5",/wherethisstring

php - 将 PHP 进程作为守护进程运行,同时从后台安全地终止它

我们正在运行一个PHP守护进程,它查看队列、接收工作任务并派生工作人员来处理它。在继续之前,工作人员自己会锁定特定位置。我们将守护进程生成为nohup后台进程。整个体系结构似乎都可以工作,除非我们出于某种原因必须终止进程。如果我们使用-9杀死它们,则无法将其困在工作进程中并在死亡前释放锁。如果我们使用小于-9的值(如TERM或HUP),它似乎不会被守护进程或工作进程接收。有没有人以更好的方式解决了这个问题?(ps:顺便说一句,出于其他考虑,我们可能无法更改我们的实现语言,所以请只考虑基于PHP的解决方案) 最佳答案 我也遇到过相关问

php - 如何使用 PHP 获取在服务器上运行的 PHP 进程列表

我有一个cronjob运行一个PHP文件,该文件运行一个用PHP编写的DAEMON,但我只想在没有其他实例运行的情况下运行该DAEMON,我如何才能获得正在运行的PHP进程列表以便查看我的DAEMON是否正在运行。我想到了某种exec,它会生成一个列表,我可以将其存储在一个数组中。有任何想法吗?谢谢 最佳答案 要获取PHP进程列表,请参阅以下问题:HowtogetlistofrunningphpscriptsusingPHPexec()?另一种选择是您可以获得文件的锁,然后在运行前检查它:例如:$thisfilepath=$_SER

PHP AMQP Consume() fork 做实际工作

我正在寻找一个从RabbitMQ队列消费(使用PECLAMQP模块)然后fork以完成实际工作的PHP脚本。我有代码@https://gist.github.com/giggsey/6666e67bb0e090eeb5f0但是当我运行它时,我得到:11296Key:USER.12392ObjectLength:74Forked11296at2013-03-1914:16:2211277ack()PHPFatalerror:Uncaughtexception'AMQPConnectionException'withmessage'Connectionresetbypeer'intmp/f

c# - 在 C# + PHP 中使用命名管道进行进程间通信

在C#中使用命名管道进行进程间通信很容易,但我不确定如何在php中执行此操作,或者是否可能。所以我有这些问题:在php中可以使用命名管道吗?是否可以使用C#命名管道客户端连接到php命名管道服务器?我到底要怎么编码?:)上述任何问题的答案都会非常有帮助..谢谢:)编辑:它是一个独立的php程序,而不是基于网络的应用程序。edit2:命名管道服务器可以在C#端,也可以在PHP端,无所谓。我已经为两者制作了C#示例..但我不知道从哪里开始php 最佳答案 如果它已经创建,那么您可以使用PHP的fopen函数将命名管道作为文件打开。在Wi

php - 这是 php 中的快速进程 strpos()/stripos() 或 preg_match()

我只想知道在php中,strpos()/stripos()或preg_match()函数中哪一个会更快。 最佳答案 我找到了thisblog已经对你的问题做了一些测试,结果是:strpos()比preg_match()快3-16倍stripos()比strpos()慢2-30倍stripos()比preg_match()快20-100%无大小写修饰符“//i”在preg_match()中使用正则表达式并不比使用正则表达式快长字符串在preg_match()中使用utf8修饰符“//u”使其慢2倍使用的代码是:

php - 使用末尾带有&符号的系统命令不会在后台运行该进程

我正在执行一个简单的调用来恢复mysql备份,这需要大约45分钟才能在我的一台服务器上完成。system("mysql-u$user-p$pass$db以这种方式运行它会锁定我的浏览器,我必须等到它完成才能做任何事情。这在我的其他服务器上运行良好。哪些设置可能会阻止它在第一台服务器上运行? 最佳答案 您仍然拥有输出管道(stdout&&stderr)的“句柄”,它可以完全防止后台运行。在末尾附加一个>/dev/null2>&1。 关于php-使用末尾带有&符号的系统命令不会在后台运行该进